package com.nn.smart.bus.commons.tools.utils;

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;

import java.util.UUID;

/**
 * 工具类
 */
@Slf4j
public class ModuleUtils {

    /**
     * feignclient降级处理错误返回
     *
     * @param serverName 服务模块名
     * @param methodName 方法名，打印到日志文件
     * @param params     参数，打印的日志文件
     * @return com.nn.smart.commons.tools.utils.Result
     * @author nanning
     * @date 2019/9/5 14:44
     */
    public static Result feignConError(String serverName, String methodName, Object... params) {
        String errorMessage = "Failure to connect " + serverName;
        String errorLog = errorMessage + "::[method]->{}::[params]->{}";
        log.error(errorLog, methodName, JSON.toJSONString(params));
        return new Result().error(errorMessage);
    }

    /**
     * 生成uuid
     */
    public static String generateUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }

    /**
     * 替换字符串中的非法字符，包括空格，换行，回车，制表符
     * <p>主要适用于身份证号和姓名</p>
     *
     * @param str 目标字符串
     * @return java.lang.String
     * @author nanning
     * @date 2020/2/25 14:31
     */
    public static String replaceIllegalCharacter(String str) {
        if (StringUtils.isNotEmpty(str)) {
            // 空格
            str = str.trim().replaceAll(" ", "");
            // 回车符
            str = str.replaceAll("\r", "");
            // 另起一行
            str = str.replaceAll("\n", "");
            // 制表符
            str = str.replaceAll("\t", "");
        }
        return str;
    }

}
